(function () {
  <%
  // config
  const config = ctx.config.module('a-wechat').account.public;
  const configExists=config.appID && config.appSecret;
  %>

  $(document).on('echo-ready', function() {
    // wechat
    if(_wechatcheckenv()) {
      if(_wechatautologin()){
        _wechatsdkinit();
      }
    }
  });

  function _wechatcheckenv(){
    // check iframe
    if(window.self !== window.top) return false;
    // check config
    <%- `const _configExists=${configExists?'true':'false'};`  %>
    if(!_configExists) return false;
    const ua = navigator.userAgent.toLowerCase();
    const inWechat = ua && (ua.indexOf('micromessenger') > -1 || ua.indexOf('micromessage') > -1);
    return inWechat;
  }

  function _wechatautologin(){
    if(util.user.op.anonymous){
      // auto login
      const url=`${env.site.serverUrl}/#!${location.href}`;
      window.location.assign(url);
      return false;
    }else{
      window.setTimeout(function(){
        $('.navbar-user .user-logout').remove();
      },0);
      return true;
    }
  }

  function _wechatsdkinit() {
    // jsconfig
    util.performAction({
      method: 'post',
      url: '/a/wechat/jssdk/jsconfig',
      body: {
        url: location.href.split('#')[0],
      },
    }).then(params => {
    _wechatwxinit(params);
    });
  }

  function _wechatwxinit(params){
    if(window.wx) return;
    util.loadScript('https://res.wx.qq.com/open/js/jweixin-1.6.0.js', function() {
      window.wx.config(params);
      window.wx.error(e => {
        console.error(e);
      });
      window.wx.ready(() => {
        $(document).trigger('wechatsdk-ready',window.wx);
      });
    });
  }
})();